﻿using Sebrae.Academico.Trilhas.BM.Classes;
using Sebrae.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.Dominio.Classes;
using System.Collections.Generic;

namespace Sebra.Academico.Trilhas.BP
{
    public class ManterTrilhaFormaAprendizagem : BusinessProcessBase
    {

        private BMTrilhaFormaAprendizagem trilhaFormaAprendizagem = null;

        public ManterTrilhaFormaAprendizagem()
            : base()
        {
            trilhaFormaAprendizagem = new BMTrilhaFormaAprendizagem(unitOfWork);
        }

        public void IncluirTrilhaFormaAprendizagem(TrilhaFormaAprendizagem pTrilhaFormaAprendizagem)
        {
            trilhaFormaAprendizagem.ValidarTrilhaFormaAprendizagemInformado(pTrilhaFormaAprendizagem);
            trilhaFormaAprendizagem.IncluirTrilhaFormaAprendizagem(pTrilhaFormaAprendizagem);
        }

        public void AlterarTrilhaFormaAprendizagem(TrilhaFormaAprendizagem pTrilhaFormaAprendizagem)
        {
            trilhaFormaAprendizagem.ValidarTrilhaFormaAprendizagemInformado(pTrilhaFormaAprendizagem);
            trilhaFormaAprendizagem.AlterarTrilhaFormaAprendizagem(pTrilhaFormaAprendizagem);
        }

        public TrilhaFormaAprendizagem ObterTrilhaFormaAprendizagemPorID(int pId)
        {
            return trilhaFormaAprendizagem.ObterTrilhaFormaAprendizagemPorID(pId);
        }

        public IList<TrilhaFormaAprendizagem> ObterTodosTrilhaFormaAprendizagem()
        {
            return trilhaFormaAprendizagem.ObterTodosTrilhaFormaAprendizagem();
        }

        public void ExcluirTrilhaFormaAprendizagem(TrilhaFormaAprendizagem pTrilhaFormaAprendizagem)
        {
            trilhaFormaAprendizagem.ExcluirTrilhaFormaAprendizagem(pTrilhaFormaAprendizagem);
        }

        public IList<TrilhaFormaAprendizagem> ObterTrilhaFormaAprendizagemPorFiltro(TrilhaFormaAprendizagem pTrilhaFormaAprendizagem)
        {
            return trilhaFormaAprendizagem.ObterPorFiltro(pTrilhaFormaAprendizagem);
        }
    }
}
